package cn.rkylin.oms.item.domain.taobao;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import cn.rkylin.oms.common.base.BaseEntity;

/**
 * 商品实体
 * 
 * @author 季鹏程
 * @version 1.0
 * @created 2017.02.13
 */
public class TopSku extends BaseEntity {
	private static final long serialVersionUID = -3105385041375340243L;

	/**
	 * skuId
	 */
	private String topSkuId;

	/**
	 * 商品Id
	 */
	private String topItemId;

	/**
	 *  skuId
	 */
	private Long skuId;

	/**
	 * 商品数字Id
	 */
	private Long numIid;

	/**
	 * sku的销售属性组合字符串（颜色，大小，等等，可通过类目API获取某类目下的销售属性）,格式是p1:v1;p2:v2
	 */
	private String properties;

	/**
	 * 属于这个sku的商品的数
	 */
	private Integer quantity;

	/**
	 * 属于这个sku的商品的价格 取值范围:0-100000000;精确到2位小数;单位:元。如:200.07，表示:200元7分。
	 */
	private BigDecimal price;

	/**
	 * sku创建日期 时间格式：yyyy-MM-dd HH:mm:ss
	 */
	private String created;

	/**
	 * sku最后修改日期 时间格式：yyyy-MM-dd HH:mm:ss
	 */
	private String modified;

	/**
	 *  sku状态。 normal:正常 ；delete:删除
	 */
	private String status;

	/**
	 * 扩展sku的id
	 */
	private Integer extraId;

	/**
	 * 扩展sku的备注信息
	 */
	private String memo;

	/**
	 * sku所对应的销售属性的中文名字串，格式如：pid1:vid1:pid_name1:vid_name1;pid2:vid2:pid_name2:vid_name2……
	 */
	private String propertiesName;

	/**
	 *  表示SKu上的产品规格信息
	 */
	private Long skuSpecId;

	/**
	 * 商品在付款减库存的状态下，该sku上未付款的订单数量
	 */
	private Integer withHoldQuantity;

	/**
	 *  sku级别发货时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date skuDeliveryTime;

	/**
	 * 基础色数据
	 */
	private String changeProp;

	/**
	 * 商家设置的外部id。天猫和集市的卖家，需要登录才能获取到自己的商家编码，不能获取到他人的商家编码。
	 */
	private String outerId;

	/**
	 * 商品级别的条形码
	 */
	private String barcode;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;

	/**
	 * 修改时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;

	/**
	 * 是否删除
	 */
	private String deleted;

	public String getTopSkuId() {
		return topSkuId;
	}

	public void setTopSkuId(String topSkuId) {
		this.topSkuId = topSkuId == null ? null : topSkuId.trim();
	}

	public String getTopItemId() {
		return topItemId;
	}

	public void setTopItemId(String topItemId) {
		this.topItemId = topItemId == null ? null : topItemId.trim();
	}

	public Long getSkuId() {
		return skuId;
	}

	public void setSkuId(Long skuId) {
		this.skuId = skuId;
	}

	public Long getNumIid() {
		return numIid;
	}

	public void setNumIid(Long numIid) {
		this.numIid = numIid;
	}

	public String getProperties() {
		return properties;
	}

	public void setProperties(String properties) {
		this.properties = properties == null ? null : properties.trim();
	}

	public Integer getQuantity() {
		return quantity;
	}

	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
	}

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status == null ? null : status.trim();
	}

	public Integer getExtraId() {
		return extraId;
	}

	public void setExtraId(Integer extraId) {
		this.extraId = extraId;
	}

	public String getMemo() {
		return memo;
	}

	public void setMemo(String memo) {
		this.memo = memo == null ? null : memo.trim();
	}

	public String getPropertiesName() {
		return propertiesName;
	}

	public void setPropertiesName(String propertiesName) {
		this.propertiesName = propertiesName == null ? null : propertiesName.trim();
	}

	public Long getSkuSpecId() {
		return skuSpecId;
	}

	public void setSkuSpecId(Long skuSpecId) {
		this.skuSpecId = skuSpecId;
	}

	public Integer getWithHoldQuantity() {
		return withHoldQuantity;
	}

	public void setWithHoldQuantity(Integer withHoldQuantity) {
		this.withHoldQuantity = withHoldQuantity;
	}

	public Date getSkuDeliveryTime() {
		return skuDeliveryTime;
	}

	public void setSkuDeliveryTime(Date skuDeliveryTime) {
		this.skuDeliveryTime = skuDeliveryTime;
	}

	public String getChangeProp() {
		return changeProp;
	}

	public void setChangeProp(String changeProp) {
		this.changeProp = changeProp == null ? null : changeProp.trim();
	}

	public String getOuterId() {
		return outerId;
	}

	public void setOuterId(String outerId) {
		this.outerId = outerId == null ? null : outerId.trim();
	}

	public String getBarcode() {
		return barcode;
	}

	public void setBarcode(String barcode) {
		this.barcode = barcode == null ? null : barcode.trim();
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public String getDeleted() {
		return deleted;
	}

	public void setDeleted(String deleted) {
		this.deleted = deleted == null ? null : deleted.trim();
	}

	public String getCreated() {
		return created;
	}

	public void setCreated(String created) {
		this.created = created;
	}

	public String getModified() {
		return modified;
	}

	public void setModified(String modified) {
		this.modified = modified;
	}
}